#ifndef _SYS_NULL_ERR_H_
#define _SYS_NULL_ERR_H_

#include "Err.h"
#include "SysTypes.h"

#define NULL_ERR_VTABLE(self)   ((NullErrVTable*)((FanObj*)self)->vtable)


extern Type*    NullErr_classType;
extern VTable*  NullErr_classVTable;


/* [sys::NullErr] Attributes */
struct NullErr
{
  Err           super;
};


/* [sys::NullErr] Virtual-table */
typedef struct NullErrVTable
{
  ErrVTable     super;
} NullErrVTable;


/* [sys::NullErr] Methods and fields */
void            NullErr_make_0(NullErr* self);
void            NullErr_make_1(NullErr* self, Str* msg);
void            NullErr_make(NullErr* self, Str* msg, Err* cause);


/* [sys::NullErr] Extra methods */
NullErr*        NullErr_new(Str* msg, Err* cause);
NullErr*        NullErr_newWithFormattedMsg(const char* msgFormat, ...);


/* [sys::NullErr] Type-system functions */
Type*           NullErr_initType(void);
VTable*         NullErr_initVTable(void);
void            NullErr_initStatic(void);


#endif
